import Vue from 'vue'
import 'normalize.css/normalize.css'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import '@/styles/index.scss'
import App from './App'
import store from './store'
import router from './router'
import '@/icons' // icon
import '@/permission' // permission control

Vue.use(ElementUI) // 内部通过插件的语法 实现了大量组件的全局注册

// components 插件对象 => 全局注册组件
import components from '@/components'
// 只要是插件, 就可以Vue.use, 一旦use, 会立即执行插件对象中的install方法
Vue.use(components)

// moment dayjs
// moment(time).format('YYYY年MM月DD日')
// dayjs(time).format('YYYY年MM月DD日')
// import { formatTime } from '@/filters'
// Vue.filter('formatTime', formatTime)
// 过滤器模块中的所有过滤器 我都要注册成全局
import * as filters from '@/filters'
// console.log(obj)
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

import Print from 'vue-print-nb'
Vue.use(Print) // 这个插件一旦use结束, 就是在给你注册一个全局自定义指令

Vue.config.productionTip = false

import * as directives from '@/directives'
Object.keys(directives).forEach((key) => {
  Vue.directive(key, directives[key])
})

new Vue({
  el: '#app', // 指定挂载点
  router,
  store,
  render: h => h(App)
})
